export interface ImageryProvider {
  name: string,//底图名称
  url: string,//底图地址
  maximumLevel: number//级别
}

export interface MapConfig{
  navigationInstructionsInitiallyVisible?: Boolean,
  shouldAnimate?: Boolean,
  terrainExaggeration?: number,
  imageryProvider?: any,
  animation?: Boolean,              //是否创建动画小器件，左下角仪表
  baseLayerPicker?: Boolean,        //是否显示图层选择器
  fullscreenButton?: Boolean,       //是否显示全屏按钮
  geocoder?: Boolean,               //是否显示geocoder小器件，右上角查询按钮
  homeButton?: Boolean,             //是否显示Home按钮
  infoBox?: Boolean,                //是否显示信息框
  vrButton?: Boolean,                  //双屏模式,默认不显示false
  sceneModePicker?: Boolean,        //是否显示3D/2D选择器
  selectionIndicator?: Boolean,     //是否显示选取指示器组件
  timeline?: Boolean,               //是否显示时间轴
  navigationHelpButton?: Boolean,   //是否显示右上角的帮助按钮
  scene3DOnly?: Boolean,             //如果设置为true，则所有几何图形以3D模式绘制以节约GPU资源
  clock?: any,     //用于控制当前时间的时钟对象
  terrainProvider?:any,                  //地形图层提供者，仅baseLayerPicker设为false有意义
  creditContainer?: Element,
  fullscreenElement?:Element,                   //全屏时渲染的HTML元素,
  useDefaultRenderLoop?: Boolean,                        //如果需要控制渲染循环，则设为true
  targetFrameRate?: undefined,                         //使用默认render loop时的帧率
  showRenderLoopErrors?: Boolean,                        //如果设为true，将在一个HTML面板中显示错误信息
  automaticallyTrackDataSourceClocks?: Boolean,           //自动追踪最近添加的数据源的时钟设置
  contextOptions?: undefined,                          //传递给Scene对象的上下文参数（scene.options）
  sceneMode?:any,                //初始场景模式
  mapProjection?:any,  //地图投影体系
  dataSources?:any
  shadows?:true
}

/**
 * CesiumTerrainProvider 传参结构
 */
export interface TerrainProvider{
  url:String,
  requestVertexNormals?:boolean,
  requestWaterMask?:Boolean,
  requestMetadata?:boolean,
  ellipsoid?:Ellipsoid,
  credit?:String //Credit | String
}

/**
 * 椭圆体；椭面
 */
export interface Ellipsoid {
 x:number,
 y:number,
 z:number
}

// export interface MapViewConfig {
//   center: [number, number]
//   zoom: number
//   projection: string
//   extent?: Array<number>
//   maxZoom?: number
//   minZoom?: number
//   resolutions: Array<number>
// }

// export interface BaseMapLayerConfig {
//   id: string
//   type: string
//   url: string
//   labelUrl?: string
//   name: string
//   zindex?: number
//   visible?: boolean
//   maxZoom?: number
//   minZoom?: number
// }

// export interface IndustryMapLayerConfig {
//   id: string
//   type: string
//   name: string
//   url?: string
//   data?: Array<any>
//   layerClass?: string
//   zindex?: number
//   visible?: boolean
//   style?: StyleConfig
// }

// export interface StyleConfig {
//   img: {
//     url: string
//     size: [number, number]
//   }
//   fill: string
//   stroke: {
//     color: string
//     width: number
//   }
// }
